IAM AssumeRole
#AWS
#IAM
誰がそのロールを引き受けられるかということ
信頼関係 > 信頼されたエンティティ
以下はVPC Flow logsが、該当のロールを引き受けられるよという意味になる
code:json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "vpc-flow-logs.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
そして次に許可ポリシーで、何をどんな条件で許可(or 拒否)できるかというのがくる
許可 > 許可ポリシー
EffectのAllowで許可
Actionで、対象の操作
Resourceで、どのリソースに対してか
を定義している
code:json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams"
],
"Resource": "*"
}
]
}
追加として、Conditionで条件を指定できる
code:json
"Condition": {
"StringEquals": {
"aws:SourceAccount": "account_id"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:ec2:region:account_id:vpc-flow-log/flow-log-id"
}
}
上記を日本語的に表すと以下のような感じになる
VPC Flow logsに、CloudWatchLogのロググループの作成など、5つの操作をする許可を与えるよ
ResourceやConditionがある場合は、上記に加えて
対象のリソースとしては、XXXXXだけね、とか
アカウントがxxxxxのものだけね、とか
そんなのがつく感じ